The driver provides additional features. They can be switched off/on and configurated by using the registry. The following additional features are being provided:
	- providing parameter data of the last set display mode
	- concealing display modes
	- reading user defined display modes

For every circuit Windows has passed to the driver, there is a subkey with the name "Device*" in the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\graphic" of the registry. "*" is a placeholder for a number. The driver has checked, whether it can handle the circuit and return the appropriate answer to Windows. It's possible that there are also subkeys for circuits which are no graphics circuits or cannot be handled by the driver for a different reason.

Graphic circuits which can be handled by the driver can be recognized by the fact, that their corresponding subkey contains a subkey with the name "current mode" which contains a value with the name "update registry values on mode change".

======================================================
Providing parameter data of the last set display mode:
======================================================
	image refreshing rate:
	----------------------
		The image refreshing rate cannot be read from the registry. It's not being stored in the graphic circuit either. It's rather an indirect result from other values:
			image refreshing rate = clock generator speed / (x.output total size * y.output total size)

		Example for the display mode "640x480@25 MHzx60 images per second":
			image refreshing rate = 25,175,000|d clock cycles per second / (800 clock cycles per line * 524 lines per image) = 60.05 images per second

	The following describes the relevant registry values:

	the value "update registry values on mode change" in the subkey "current mode":
	-------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains whether the driver should create and overwrite the values which are described in this document every time when a display mode is set.

		There are the following valid values:
			- 00|h: The driver should not create the values nor overwrite them.
			- 01|h: If necessary then the driver should create the values. Afterwards the driver should overwrite them.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as a boolean value/truth statement (00|h = "false", 01|h = "true")
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

	the value "clock generator speed" in the subkey "current mode":
	---------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the speed of the clock generator that has been used the last time a display mode has been set. The clock generator is being used to output the pixel data. It's not being used to drive the main processor (CPU). The main processor has it's own clock generator.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			- 02 62 5A 00|h: The clock generator is running at a speed of 40,000,000|d clock cycles per second.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			- 00 C0 11 EC|h: The clock generator is running at a speed of 12,587,500|d clock cycles per second.
			- 00 D8 14 68|h: The clock generator is running at a speed of 14,161,000|d clock cycles per second.
			- 01 80 23 D8|h: The clock generator is running at a speed of 25,175,000|d clock cycles per second.
			- 01 B0 28 D0|h: The clock generator is running at a speed of 28,322,000|d clock cycles per second.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles per second
		type of the access: the driver only writes to the value

	the value "graphic standard" in the subkey "current mode":
	----------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the identification number of the graphics standard that has been used the last time a display mode has been set.

		There are the following valid values:
			- 01|h: The graphics standard "video graphics array" ("VGA") by International Business Machines Corporation has been used.
			- 02|h: The graphics standard "generation 7 low cost" ("Gen7LC") by Intel Corporation has been used.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  - no unit -
		type of the access: the driver only writes to the value

	the value "x.input drawing area size" in the subkey "current mode":
	-------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the active drawing area that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then the following is true:
			- 1 clock cycle = 1 pixel

		If the graphics standard "video graphics array" ("VGA") is being used, then the following is true:
			- up to 16|d colors: 1 clock cycle = 1 pixel
			- 17|d colors or more: 2 clock cycles = 1 pixel

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "x.output unblackened front porch size" in the subkey "current mode":
	-------------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened front porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The data transmission for a line looks like the following in all 3 color channels:
			content of the color channels: A|B|C|D|E|F|G|...
			             time progression: -------------->

			A = image data for the active drawing area of the current line
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = image data for the active drawing area of the next line

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "x.output blackened front porch size" in the subkey "current mode":
	-----------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened front porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "x.output synchronization pulse size" in the subkey "current mode":
	-----------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the synchronization pulse that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the line has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly one line downwards and back to the left limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next line has been reached. The display is also instructed to let it's electron beam (if it has one) slowly move rightwards, so that the pixel data of the next line can be projected.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "x.output blackened back porch size" in the subkey "current mode":
	----------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened back porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "x.output unblackened back porch size" in the subkey "current mode":
	------------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened back porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened back porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "x.output total size" in the subkey "current mode":
	-------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the total length of a line that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The value results from a summation of the single values for the horizontal axis. But the driver does not return a calculated value. Instead the driver returns the value which it read from the graphic circuit.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "y.input drawing area size" in the subkey "current mode":
	-------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the active drawing area that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "y.output unblackened front porch size" in the subkey "current mode":
	-------------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened front porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The data transmission for an image looks like the following in all 3 color channels:
			c
			o
			n
			t
			e
			n
			t

			o
			f

			t
			h
			et
			 i
			cm
			oe
			l
			op
			rr
			 o
			cg
			hr
			ae
			ns
			ns
			ei
			lo
			sn
			::

			A|
			-|
			B|
			-|
			C|
			-|
			D|
			-|
			E|
			-|
			F|
			-|
			G|
			-|
			.▼
			.
			.

			A = lines according to the drawing in the chapter 'the value "x.output unblackened front porch size" in the subkey "current mode"' for the current image
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = lines according to the drawing in the chapter 'the value "x.output unblackened front porch size" in the subkey "current mode"' for the next image

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "y.output blackened front porch size" in the subkey "current mode":
	-----------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened front porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "y.output synchronization pulse size" in the subkey "current mode":
	-----------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the synchronization pulse that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the image has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly from the bottom of the screen to the top limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next image has been reached.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "y.output blackened back porch size" in the subkey "current mode":
	----------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened back porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "y.output unblackened back porch size" in the subkey "current mode":
	------------------------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened back porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "y.output total size" in the subkey "current mode":
	-------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the total length of an image that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The value results from a summation of the single values for the vertical axis. But the driver does not return a calculated value. Instead the driver returns the value which it read from the graphic circuit.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

=========================
Concealing display modes:
=========================
	Concealing display modes can be helpful if there are several similar display modes. If there are more than 1 seemingly identical display modes then Windows will only expose the first of these display modes to the user to choose from.

	the value "conceal modes defined by the end user":
	--------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains whether the driver should conceal user defined display modes every time when the driver is requested to return the number of his display modes or to list his display modes. Display modes which have been defined by the author of the driver while he was programming the driver are not affected. Display modes which have been defined by the end user are affected.

		This value indeed only affects the announcement of display modes. The graphic circuit can still be switched to a hidden/concealed display mode, if the command is sent to the driver.

		There are the following valid values:
			- 00|h: The driver should not conceal the display modes.
			- 01|h: The driver should conceal the display modes.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as a boolean value/truth statement (00|h = "false", 01|h = "true")
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

	the value "conceal VGA modes defined by the driver author":
	-----------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains whether the driver should conceal it's VGA display modes every time when the driver is requested to return the number of his display modes or to list his display modes. Display modes which have been defined by the author of the driver while he was programming the driver are affected. Display modes which have been defined by the end user are not affected. Furthermore only those display modes are affected, for which the graphics standard "video graphics array" ("VGA") is being used.

		This value indeed only affects the announcement of display modes. The graphic circuit can still be switched to a hidden/concealed display mode, if the command is sent to the driver.

		There are the following valid values:
			- 00|h: The driver should not conceal the display modes.
			- 01|h: The driver should conceal the display modes.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as a boolean value/truth statement (00|h = "false", 01|h = "true")
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

===================================
Reading user defined display modes:
===================================
	End users are able to define up to 16|h display modes of their own choice (within limits).

	Each of these display modes gets an identification number assigned. Such an identification number is a unique number between 0|h and F|h.

	To define a display mode a set of parameters needs to be written to the registry. A set of parameters is a subkey and a collection of the following values, which need to be stored into this subkey. The "1 character"-sized name of the subkey is the identification number (from "0" to "F" (capital letter)). The subkey for the display mode needs to be stored in the subkey "modes defined by the end user". The subkey "modes defined by the end user" needs to be stored in the subkey "Device*".

	All of the following values are necessary for a display mode. Otherwise the driver will not accept the display mode as valid. All values need to be stored in the same subkey. Furthermore the values need to be valid according to the following descriptions. This means that the values need to be within their lower and upper limits. Also the step sizes need to be adhered to.

	If the graphics standard "video graphics array" ("VGA") is being used, then there are the following limitations:
		(
			  x.output blackened back porch size
			+ x.output unblackened back porch size
		) has to be >= 8 clock cycles. This means that the requirements given by the "video graphics array"-specifications need to be adhered to.

		(
			  x.input drawing area size
			* y.input drawing area size
			* length_in_bytes_per_clock_cycle_and_line(pixel)
		) has to be <= 256 KB. This means that the necessary image buffer needs to be <= to maximal available image memory.
	If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following limitations:
		x.output total size has to be >= 32 clock cycles. This means that the requirements given by the "generation 7 low cost"-specifications need to be adhered to.

		(
			  round_up(x.input drawing area size / 64|d) * 64|d
			* y.input drawing area size
			* length_in_bytes_per_clock_cycle_and_line(pixel)
		) has to be <= 8 MB. This means that the necessary image buffer needs to be <= to maximal available image memory.

	1 KB = 1,024 bytes

	If the graphics standard "video graphics array" ("VGA") is being used, then the following is valid:
		At 2 colors the following is valid: length_in_bytes_per_clock_cycle_and_line(pixel) = 0.125 bytes/(clock cycle * line)
		At 4 colors the following is valid: length_in_bytes_per_clock_cycle_and_line(pixel) = 0.25 bytes/(clock cycle * line)
		From 16 to 256 colors the following is valid: length_in_bytes_per_clock_cycle_and_line(pixel) = 0.5 bytes/(clock cycle * line)
	If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then the following is valid:
		At 256 colors the following is valid: length_in_bytes_per_clock_cycle_and_line(pixel) = 1 byte/(clock cycle * line)

	Furthermore the following is valid:
		x.output total size =
			  x.input drawing area size
			+ x.output unblackened front porch size
			+ x.output blackened front porch size
			+ x.output synchronization pulse size
			+ x.output blackened back porch size
			+ x.output unblackened back porch size

		y.output total size = round_down(
			clock generator speed / (image refreshing rate * x.output total size)
		)

	Independent of the used graphics standard there is the following limitation:
		y.output total size needs to be >= (
			  y.input drawing area size
			+ y.output unblackened front porch size
			+ y.output blackened front porch size
			+ y.output synchronization pulse size
			+ y.output blackened back porch minimal size
			+ y.output unblackened back porch minimal size
		). This means that the chosen clock generator needs to be fast enough to output the data.

	Furthermore, if the graphics standard "video graphics array" ("VGA") is being used, then the following is valid:
		If
			y.output total size <= 1,025
		then
			y.multiplicator = 1
		else
			y.multiplicator = 2

	the value "clock generator speed":
	----------------------------------
		With the help of this value information is passed towards the driver. The information contains the speed of the clock generator which the driver should use for this display mode. The clock generator is being used to output the pixel data. It's not being used to drive the main processor (CPU). The main processor has it's own clock generator.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			- 02 62 5A 00|h: The clock generator should be running at a speed of 40,000,000|d clock cycles per second.
		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			- 00 C0 11 EC|h: The clock generator should be running at a speed of 12,587,500|d clock cycles per second.
			- 00 D8 14 68|h: The clock generator should be running at a speed of 14,161,000|d clock cycles per second.
			- 01 80 23 D8|h: The clock generator should be running at a speed of 25,175,000|d clock cycles per second.
			- 01 B0 28 D0|h: The clock generator should be running at a speed of 28,322,000|d clock cycles per second.

		In addition, with all graphics standards there is the following valid value:
			- FF FF FF FF|h: The driver should choose the speed of the clock generator. When doing so, the driver chooses the slowest speed, that is still possible with the defined display mode. With this approach the transmission time for the image data is maximized and the transmission time of the porches is minimized.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles per second
		type of the access: the driver only reads the value

	the value "graphic standard":
	-----------------------------
		With the help of this value information is passed towards the driver. The information contains the identification number of the graphics standard which the driver should use for this display mode.

		There are the following valid values:
			- 01|h: The graphics standard "video graphics array" ("VGA") by International Business Machines Corporation should be used.
			- 02|h: The graphics standard "generation 7 low cost" ("Gen7LC") by Intel Corporation should be used.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

	the value "image refreshing rate":
	----------------------------------
		With the help of this value information is passed towards the driver. The information contains the image refreshing rate which the driver should use for this display mode.

		There are the following valid values:
			minimal value:  1 image per second
			maximal value:  255 images per second
			step size:      1 image per second
			example values: 1; 2; 3; ...; 254; 255 images per second

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  images per second
		type of the access: the driver only reads the value

	the value "x.input drawing area size":
	--------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the active drawing area which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then the following is true:
			- 1 clock cycle = 1 pixel

		If the graphics standard "video graphics array" ("VGA") is being used, then the following is true:
			- up to 16|d colors: 1 clock cycle = 1 pixel
			- 17|d colors or more: 2 clock cycles = 1 pixel

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  1 pixel = 1 clock cycle
			maximal value:  4,096 pixels = 4,096 clock cycles
			step size:      1 pixel = 1 clock cycle
			example values: 1; 2; 3; ...; 4,095; 4,096 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  1 character * character_size = 8 clock cycles
			maximal value:  256 characters * character_size = 2,048 clock cycles
			step size:      1 characters * character_size = 8 clock cycles
			example values: 8; 16; 24; ...; 2,040; 2,048 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "x.output unblackened front porch size":
	--------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the unblackened front porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		The data transmission for a line looks like the following in all 3 color channels:
			content of the color channels: A|B|C|D|E|F|G|...
			             time progression: -------------->

			A = image data for the active drawing area of the current line
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = image data for the active drawing area of the next line

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - x.output total size
			                + x.output unblackened front porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 characters * character_size = 0 clock cycles
			maximal value:  max(
			                      (255 characters * character_size)
			                    - x.output total size
			                    + x.output unblackened front porch size,
			                    0 clock cycles
			                )

			                = max(
			                      2,040 clock cycles
			                    - x.output total size
			                    + x.output unblackened front porch size,
			                    0 clock cycles
			                )
			step size:      1 character * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 2,032; 2,040 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "x.output blackened front porch size":
	------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened front porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - x.output total size
			                + x.output blackened front porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 characters * character_size = 0 clock cycles
			maximal value:    (63 characters * character_size)
			                - x.output synchronization pulse size
			                - x.output blackened back porch size

			                = 504 clock cycles
			                - x.output synchronization pulse size
			                - x.output blackened back porch size
			step size:      1 character * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 496; 504 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "x.output synchronization pulse size":
	------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the synchronization pulse which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the line has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly one line downwards and back to the left limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next line has been reached. The display is also instructed to let it's electron beam (if it has one) slowly move rightwards, so that the pixel data of the next line can be projected.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - x.output total size
			                + x.output synchronization pulse size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  4 characters * character_size = 32 clock cycles
			maximal value:  31 characters * character_size = 248 clock cycles
			step size:      1 character * character_size = 8 clock cycles
			example values: 32; 40; 48; ...; 240; 248 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "x.output blackened back porch size":
	-----------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened back porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - x.output total size
			                + x.output blackened back porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 characters * character_size = 0 clock cycles
			maximal value:    (63 characters * character_size)
			                - x.output blackened front porch size
			                - x.output synchronization pulse size

			                = 504 clock cycles
			                - x.output blackened front porch size
			                - x.output synchronization pulse size
			step size:      1 characters * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 496; 504 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "x.output unblackened back porch size":
	-------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the unblackened back porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened back porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - x.output total size
			                + x.output unblackened back porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  max(
			                      (25 characters * character_size)
			                    - x.output total size
			                    + x.output unblackened back porch size,
			                    0 clock cycles
			                )

			                = max(
			                      200 clock cycles
			                    - x.output total size
			                    + x.output unblackened back porch size,
			                    0 clock cycles
			                )
			maximal value:    (260 characters * character_size)
			                - x.output total size
			                + x.output unblackened back porch size

			                = 2,080 clock cycles
			                - x.output total size
			                + x.output unblackened back porch size
			step size:      1 character * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 2,072; 2,080 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "y.input drawing area size":
	--------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the active drawing area which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  1 line
			maximal value:  4,096 lines
			step size:      1 liine
			example values: 1; 2; 3; ...; 4,095; 4,096 lines

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  1 line * y.multiplicator
			maximal value:  1,024 lines * y.multiplicator
			step size:      1 line * y.multiplicator
			example values: 1; 2; 3; ...; 1,023; 1,024; 1,026; ...; 2,046; 2,048 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "y.output unblackened front porch size":
	--------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the unblackened front porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		The data transmission for an image looks like the following in all 3 color channels:
			c
			o
			n
			t
			e
			n
			t

			o
			f

			t
			h
			et
			 i
			cm
			oe
			l
			op
			rr
			 o
			cg
			hr
			ae
			ns
			ns
			ei
			lo
			sn
			::

			A|
			-|
			B|
			-|
			C|
			-|
			D|
			-|
			E|
			-|
			F|
			-|
			G|
			-|
			.▼
			.
			.

			A = lines according to the drawing in the chapter 'the value "x.output unblackened front porch size" in the subkey "current mode"' for the current image
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = lines according to the drawing in the chapter 'the value "x.output unblackened front porch size" in the subkey "current mode"' for the next image

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - y.output total size
			                + y.output unblackened front porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  max(
			                      (1,024 lines * y.multiplicator)
			                    - y.output total size
			                    + y.output unblackened front porch size,
			                    0 lines
			                )
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 1,023; 1,024; 1,026; ...; 2,046; 2,048 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "y.output blackened front porch size":
	------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened front porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - y.output total size
			                + y.output blackened front porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  max(
			                      (256 lines * y.multiplicator)
			                    - y.output synchronization pulse size
			                    - y.output blackened back porch size,
			                    0 lines
			                )
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 255; 256; 258; ...; 510; 512 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "y.output synchronization pulse size":
	------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the synchronization pulse which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the image has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly from the bottom of the screen to the top limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next image has been reached.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - y.output total size
			                + y.output synchronization pulse size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  15 lines * y.multiplicator
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 14; 15; 16; 18; ...; 28; 30 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "y.output blackened back porch minimal size":
	-------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened back porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - y.output total size
			                + y.output blackened back porch size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  max(
			                      (256 lines * y.multiplicator)
			                    - y.output blackened front porch size
			                    - y.output synchronization pulse size,
			                    0 lines
			                )
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 255; 256; 258; ...; 510; 512 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "y.output unblackened back porch minimal size":
	---------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the minimal length of the unblackened back porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		In the most cases the actual length, which the driver uses, is longer than the given minimal length. This is because the driver uses the unblackened back porch of the vertical axis to waste excess clock cycles by doing basicly nothing. The necessity to waste clock cycles comes from the fact that the chosen clock generator delivers a fixed amount of clock cycles per second and with that per image. This means the amount is also independent from whether the amount is needed for outputting the image. This is why
			- at low resolutions or low image refreshing rates many clock cycles and
			- at high resolutions or high image refreshing rates few clock cycles
		need to be wasted.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "generation 7 low cost" ("Gen7LC") is being used, then there are the following valid values:
			minimal value:  0 clock cycles
			maximal value:    8,192 clock cycles
			                - y.output total size
			                + y.output unblackened back porch minimal size
			step size:      1 clock cycle
			example values: 0; 1; 2; 3; ...; 8,191; 8,192 clock cycles

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  max(
			                      (2 lines * y.multiplicator)
			                    - y.output total size
			                    + y.output unblackened back porch minimal size,
			                    0 lines
			                )
			maximal value:    (1,025 lines * y.multiplicator)
			                - y.output total size
			                + y.output unblackened back porch minimal size
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 1,024; 1,025; 1,026; 1,028; ...; 2,048; 2,050 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value